import { getTopMV } from '../../service/api/video'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    topMVs: [],
    hasMore: true
  },
  /**
   * 监听页面加载的生命周期
   * @param {*} options 
   */
  onLoad(options) {
    this.getTopMVData(0)
  },
  /**
   * 封装网络请求的方法
   */
  async getTopMVData(offset) {
    //1.判断是否可以请求
    if (!this.data.hasMore && offset !== 0) return

    //2.展示加载动画
    wx.showNavigationBarLoading()
    
    //3.请求数据
    const res = await getTopMV(offset)
    let newData = this.data.topMVs
    if (offset === 0) newData = res.data
    else newData = [...newData, ...res.data]

    //4.设置数据
    this.setData({ topMVs: newData })
    this.setData({ hasMore: res.hasMore })

    //5.关闭动画，主动停掉下拉刷新
    if (offset === 0) wx.stopPullDownRefresh()
    wx.hideNavigationBarLoading()
  },
  /**
   * 封装点击事件的处理
   */
  handleVideoItemClick(event) {
    //1.获取id
    const id = event.currentTarget.dataset.item.id
    //2.页面跳转
    wx.navigateTo({
      url: `/pages/detail-video/index?id=${id}`,
    })
  },
  /**
   * 监听下拉刷新
   */
  onPullDownRefresh() {
    this.getTopMVData(0)
  },
  /**
   * 监听页面滚动到底部
   */
  onReachBottom() {
    this.getTopMVData(this.data.topMVs.length)
  }
});